
/*引用模块*/

var gulp = require('gulp');
var $ = require('gulp-load-plugins')();/*引用这个函数需要实例化*/
var open = require('open');


/*定义目录路径的全局变量*/
var app = {
    srcPath:'src/',
    devPath:'build/',
    prdPath:'dist/'
};

/*将bower下载的第三方依赖，通过拷贝的方式，放到开发和生产的目录下*/

/*读取文件:gulp.src。操作:.pipe。复制：gulp.dest*/

gulp.task('lib',function () {
    gulp.src('bower_components/**/*')
        .pipe(gulp.dest(app.devPath+'vendor'))
        .pipe(gulp.dest(app.prdPath+'vendor'))
        .pipe($.connect.reload());//构建完成之后自动刷新
});

gulp.task('html',function () {
    gulp.src(app.srcPath+'**/*.html')
        .pipe(gulp.dest(app.devPath))
        .pipe(gulp.dest(app.prdPath))
        .pipe($.connect.reload());//构建完成之后自动刷新
})

gulp.task('json',function () {
    gulp.src(app.srcPath+'data/**/*.json')
        .pipe(gulp.dest(app.devPath+"data"))
        .pipe(gulp.dest(app.prdPath+'data'))
        .pipe($.connect.reload());//构建完成之后自动刷新
})

gulp.task('less',function () {
   gulp.src(app.srcPath+'style/index.less')
       .pipe($.less())
       .pipe(gulp.dest(app.devPath+'css'))
       .pipe($.cssmin())
       .pipe(gulp.dest(app.prdPath+'css'))
       .pipe($.connect.reload());//构建完成之后自动刷新
})

gulp.task('js',function () {
    gulp.src(app.srcPath+'script/**/*.js')
        .pipe($.concat('index.js'))
        .pipe(gulp.dest(app.devPath+'js'))
        .pipe($.uglify())
        .pipe(gulp.dest(app.prdPath+'js'))
        .pipe($.connect.reload());//构建完成之后自动刷新
})

gulp.task('image',function () {
    gulp.src(app.srcPath+'image/**/*')
        .pipe(gulp.dest(app.devPath+'image'))
        .pipe($.imagemin())
        .pipe(gulp.dest(app.prdPath+'image'))
        .pipe($.connect.reload());//构建完成之后自动刷新
})

/*总任务，合并*/
gulp.task('build',['image','js','less','lib','html','json']);


/*发布的时候清除之前的文件目录*/
gulp.task('clean',function () {
    gulp.src([app.devPath,app.prdPath])
        .pipe($.clean());

})

/*代码编译完成之后，自动执行构建任务*/
gulp.task('server',['build'],function () {
    $.connect.server({
        root:[app.devPath],
        livereload:true,
        port:8080
    });
    open('http://localhost:8080');

    gulp.watch(app.srcPath+'script/**/*.js',['js']);
    gulp.watch('bower_components/**/*',['lib']);
    gulp.watch(app.srcPath+'**/*.html',['html']);
    gulp.watch(app.srcPath+'data/**/*.json',['json']);
    gulp.watch(app.srcPath+'style/**/*.less',['less']);
    gulp.watch(app.srcPath+'image/**/*',['image']);

})


/*当我们要执行gulp server的任务时，可以直接写gulp，就会调用默认的default任务，而这个default任务依赖server*/
gulp.task('default',['server']);



















































